之前给出了 php-fpm.conf 的内容,下面给出一个模版,配置如下
|
|
说明
- [global] 部分是全局配置,指定 pid 文件路径以及 error_log 路径。
- [www] 是一个 pool ,还可以再写第二个 pool ,第二个 pool 和第一个不易演的的地方,首先 pool 的 name ,比如叫做 [www2] 。然后 listen 肯定就不能一样了,比如 可以 listen = /tmp/php-fcgi2.sock 。而 user , group 也可以和 [www] 中定义的不一样。 listen.owner 这个是定义 /tmp/php-fcgi2.sock 这个文件的所有者是谁,在 php5.4 版本之后监听的 socket 文件权限默认变成了 600,如果不定义 listen.owner 那么 nginx 调用这个 socket 的时候就没有权限了,所以在这里定义 listen.owner 为 nginx 的子进程监听用户。
- pm = dynamic 表示以动态的形式启动,在 php5.3 版本以后它可以支持动态和静态了,如果是静态,即 pm = static 时,下面的配置只有 pm.max.children 管用。
- pm.max.children 表示启动几个 php-fpm 的子进程。如果是 dynamic ,下面的配置会生效,pm.max.children 表示最大可以启动几个子进程。
- pm.start_servers 表示一开始启动几个子进程。
- pm.max_requeste 表示一个子进程最多可以接受多少个请求,比如设置为500那么一个子进程手里500个请求后自动销毁。
- rlimit_files 表示每个子进程打开的多少个文件句柄。
|
|
表示一个脚本执行时间超过 1秒就要记录这个slow.log ,记录这个可以看到这个脚本哪里执行慢,可以通过slow.log排查网站慢的原因,根据这个原因做一定的优化。
|
|
apache 可以设置 open_basedir ,php-fpm也可以,不同的 pool 设置不同的 open_basedir 可以针对不同的域名进行不同的限制。多个目录用 :分割。